#ifndef HISTREAMER_PLUGIN_TYPES_H
#define HISTREAMER_PLUGIN_TYPES_H


#include <vector>
#include <set>
#include "common/any.h"

namespace OHOS {
namespace Multimedia {
namespace Plugin {

enum struct State : int32_t {
	CREATED = 0,
	INITIALIZED = 1,
	PREPARED = 2,
	RUNNING = 3,
	PAUSED = 4,
	DESTROYED = -1,
	INVALID = -2,
};

enum struct SeekMode : uint32_t {
	FORWARD,
	BACKWARD,
	BYTE,
	ANY,
	FRAME,
};

enum struct State : int32_t {
	END_OF_STREAM =1,
	OK = 0,
	NO_ERROR = OK,
	ERROR_UNKNOWN = -1,
	ERROR_ALREADY_EXISTS = -2,
	ERROR_INCOMPATIBLE_VERSION = -3,
	ERROR_NO_MEMORY = -4,
	ERROR_WRONG_STATE = -5,
	ERROR_UNIMPLEMENTED = -6,
	ERROR_INVALID_PARAMETER = -7,
	ERROR_INVALID_DATA = -8,
	ERROR_MISMATCHED_TYPE = -9,
	ERROR_TIMED_OUT = -10,
	ERROR_UNSUPPORTED_FORMAT = -11,
	ERROR_NOT_ENOUGH_DATA = -12,
	ERROR_ITEM_NOT_FOUND = -13,
};

enum struct PluginType : int32_t {
	INVAILD_TYPE = -1,
	SOURCE = 1,
	DEMUXER,
	CODEC,
	AUDIO_SINK,
	VIDEO_SINK,
};

}
}
}
#endif